Efficient Barriers for Persistent Object Caching in a High-Performance JavaTM Virtual Machine
نویسندگان
چکیده
We implemented orthogonal persistence for the Java platform by adding persistent object caching to a high-performance virtual machine that uses exact garbage collection, the Sun Microsystems Laboratories Virtual Machine for Research (‘‘ResearchVM’’).1 This paper gives an overview of our design for the read and write barriers needed to support persistence. The key design decision we made was the choice of a pointer swizzling strategy. Pointer swizzling speeds up programs by translating persistent addresses (references to persistent objects on disk) into normal virtual memory addresses in the object cache. The swizzling technique we chose is simple (requires few source changes to the ResearchVM) and performs well (adds acceptably low CPU overhead to the ResearchVM). Our integration of the new barriers was considerably simplified by an internal memory interface that the ResearchVM consistently uses, except in its JustIn-Time (JIT) compiler, to access program runtime values. Our new persistent version of the ResearchVM, the PEVM, requires just 30% of the changes necessary in our previous persistent virtual machine implementations. It executes programs with only modest runtime overhead (typically 10-20%) compared to an unchanged ResearchVM. 1A ResearchVM is embedded in Sun’s JavaTM 2 SDK Production Release for the SolarisTM Operating Environment, available at http://www.sun.com/solaris/java/. email address: [email protected] [email protected] © 1999 Sun Microsystems, Inc. All rights reserved. The SML Technical Report Series is published by Sun Microsystems Laboratories, of Sun Microsystems, Inc. Printed in U.S.A. Unlimited copying without fee is permitted provided that the copies are not made nor distributed for direct commercial advantage, and credit to the source is given. Otherwise, no part of this work covered by copyright hereon may be reproduced in any form or by any means graphic, electronic, or mechanical, including photocopying, recording, taping, or storage in an information retrieval system, without the prior written permission of the copyright owner. TRADEMARKS Sun, Sun Microsystems, the Sun logo, Java, and Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. For information regarding the SML Technical Report Series, contact Jeanie Treichel, Editor-in-Chief . E cient Barriers for Persistent Object Caching in a High-Performance JavaVirtual Machine Brian Lewis, Bernd Mathiske Sun Microsystems Laboratories 901 San Antonio Road Palo Alto, CA 94303
منابع مشابه
E cient Barriers for Persistent Object Caching in a High-Performance Java Virtual Machine
We implemented orthogonal persistence for the Java platform by adding persistent object caching to a high-performance virtual machine that uses exact garbage collection (\EVM"). This paper gives an overview of our design for the read and write barriers needed to support persistence. The key design decision we made was the choice of a pointer swizzling strategy. Pointer swizzling speeds up progr...
متن کاملArchitecture of the PEVM: A High-Performance Orthogonally Persistent JavaTM Virtual Machine
This paper describes the design and implementation of the PEVM, a new scalable, high-performance implementation of orthogonal persistence for the JavaTM platform (OPJ). The PEVM is based on the Sun Microsystems Laboratories Virtual Machine for Research (ResearchVM), which features an optimizing Just-In-Time compiler, exact generational garbage collection, and fast thread synchronization. It als...
متن کاملImplementing a JavaTM Virtual Machine in the Java Programming Language
JavaInJava is a Java virtual machine written in the JavaTM programming language. The system was built at Sun Microsystems Laboratories in order to examine the feasibility of constructing high-quality virtual machines using the Java programming language and to experiment with new virtual machine implementation techniques. In this paper we describe the overall architecture of JavaInJava and summa...
متن کاملExperience Building a File System on a Highly Modular Operating System
File systems that employ caching have been built for many years. However, most work in file systems has been done as part of monolithic operating systems. In this paper we give our experience with building a high-performance distributed file system on Spring, a highly modular operating system where system services such as file systems are provided as user-level servers. The Spring file system d...
متن کاملAn Object-Based Processor Cache
In the past, many persistent object-oriented architecture designs have been based on traditional processor technologies. Such architectures invariantly attempt to insert an object-level abstraction mechanism over the traditional processor’s virtual addressing scheme; this results in an architecture which incurs a translation overhead on every object access. Other architectures use objects at th...
متن کامل